/*********************************************************************************
  *Copyright (c)    2021   xldeng
  *FileName:        704.cpp.c
  *Author:          xldeng
  *Version:         1.0
  *Date:            2021/2/8 23:46
  *Description:     
  *Others:          
  *Function List:   
     1.…………
  *History:  
     1.Date:
       Author:
       Modification:
**********************************************************************************/
/*
 * 给定一个n个元素有序的（升序）整型数组nums 和一个目标值target ，
 * 写一个函数搜索nums中的 target，如果目标值存在返回下标，否则返回 -1。
 */
#include "../header.h"

class Solution {
public:
    int search(vector<int> &nums, int target) {
        int lo = 0;
        int hi = nums.size();
        while (lo < hi) {
            int mid = lo + ((hi - lo) >> 1);
            if (nums[mid] > target)
                hi = mid;
            else if (nums[mid] < target)
                lo = mid + 1;
            else
                return mid;
        }
        return -1;
    }
};